<?php
load_class('TMIS_Model_Cangku_Son');
class Model_Sample_Ruku2Product extends TMIS_Model_Cangku_Son {
    var $tableName = 'sample_ruku2product';
    var $primaryKey = 'id';

    var $moduleName = '样品间入库明细';// 模块名称

    //库存model标识符
    var $modelKucun = 'Model_Sample_Kucun';
    //是否出库，如果是出库，数量新增时需要*-1
    var $isChuku = false;
    //子表记录中的主表映射名,用来取得主表记录
    var $mappingName = 'Rk';
    //日期字段,必须在主表中
    var $fldDate = 'rukuDate';
    //数量,金额字段,必须在子表中,且数量字段可以是多个
    var $fldCnt = array('cnt'=>'cnt');
    //其他需要复制到库存表中的字段，主要是汇总字段(分主从表,字段名必须一致)，也可能是数量字段（不参与库存计算)
    var $fldCopyMain = array();
    var $fldCopySon = array('productId','proDesc','type','kuweiId','code','gexing','zuzhi','tanli','hzlId');

    var $belongsTo = array (
        array(
            'tableClass' => 'Model_Sample_Ruku',
            'foreignKey' => 'rukuId',
            'mappingName' => 'Rk',
        ),

    );

    /**
     * 更新后处理的函数
     * Time：2019/11/27 09:50:05
     * @author li
     * @param 参数类型
     * @return 返回值类型
    */
    function _afterUpdateDb(& $row , & $oldRow){
        //先执行父类中的数据处理函数
        parent::_afterUpdateDb($row ,$oldRow);


        //如果不允许搜图，直接返回布处理图片
        $isSim = FLEA::getAppInf('searchByImage');
        if(!$isSim) return true;

        //执行自己个性化的地方
        $oldPic = $oldRow['imageId'] ? explode(',' ,$oldRow['imageId']) : array();
        $newPic = $row['imageId'] ? explode(',' ,$row['imageId']) : array();
        if($newPic){
            $modelImg = FLEA::getSingleton('Model_Jichu_Image');
            foreach ($newPic as & $img) {
                if(!in_array($img, $_oldPic) ){
                    $img > 0 && $modelImg->uploadSim(array('id'=>$img));
                }
            }
        }

        //判断是否需要删除图片
        if($oldPic){
            $class = FLEA::getSingleton('Controller_Jichu_Image');
            foreach ($oldPic as & $img) {
                if(!in_array($img, $newPic)){
                    $class->_removeImg($img);
                }
            }
        }
    }

    /**
     * 上传成功之后需要处理的函数
     * Time：2019/11/26 14:05:43
     * @author li
     * @param 参数类型
     * @return 返回值类型
    */
    function _afterCreateDb(& $row) {
        //先执行父类中的数据处理函数
        parent::_afterCreateDb($row);

        //如果不允许搜图，直接返回布处理图片
        $isSim = FLEA::getAppInf('searchByImage');
        if(!$isSim) return true;

        //执行自己个性化的地方
        if($row['imageId']){
            $modelImg = FLEA::getSingleton('Model_Jichu_Image');
            $imageId = explode(',' ,$row['imageId']);
            foreach ($imageId as & $img) {
                $img > 0 && $modelImg->uploadSim(array('id'=>$img));
            }
        }
    }

    public function getCode() {
        $sql = "SELECT distinct code from `sample_ruku2product` where 1";
        if($_GET['key']){
            $sql .= " and code like '%{$_GET['key']}%'";
        }
        $list = $this->findBySql($sql);
        if(count($list) == 0){
            $sql1 = "SELECT distinct proCode from `jichu_product` where 1";
            if($_GET['key']){
                $sql1 .= " and proCode like '%{$_GET['key']}%'";
            }
            $list = $this->findBySql($sql1);
        }
        //变成一级数组
        $type = array_col_values($list ,'code');

        //处理成可选项
        $optionsArr = array();
        foreach ($type as $key => $v) {
            $optionsArr[] = $v;
        }

        return $optionsArr;
    }

    //获取组织信息
    function getOptionsFiled($field){
        $sql = "SELECT distinct {$field} as showText from `sample_ruku2product` where {$field}<>'' limit 0,100";
        $list = $this->findBySql($sql);
        //变成一级数组
        $type = array_col_values($list ,'showText');

        //处理成可选项
        $optionsArr = array();
        foreach ($type as $key => $v) {
            $optionsArr[] = array('text'=>$v,'value'=>$v);
        }

        return $optionsArr;
    }
}
?>